--
-- PostgreSQL database dump
--

-- Dumped from database version 9.1.2
-- Dumped by pg_dump version 9.1.2
-- Started on 2012-07-08 18:17:30 ART

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SET check_function_bodies = false;
SET client_min_messages = warning;

--
-- TOC entry 171 (class 3079 OID 11907)
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: 
--

CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;


--
-- TOC entry 2178 (class 0 OID 0)
-- Dependencies: 171
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: 
--

COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';


SET search_path = public, pg_catalog;

--
-- TOC entry 183 (class 1255 OID 50223)
-- Dependencies: 6 515
-- Name: deletalldata(); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION deletalldata() RETURNS integer
    LANGUAGE plpgsql
    AS $$
  DECLARE tablasDB RECORD;
  BEGIN
    FOR tablasDB IN SELECT 
	tables.table_name
	FROM 
	information_schema.tables 
	where tables.table_schema='public'	
   LOOP 
	EXECUTE 'TRUNCATE ' ||tablasDB.table_name||' CASCADE';
   END LOOP;

   RETURN 1; END;
$$;


ALTER FUNCTION public.deletalldata() OWNER TO postgres;

--
-- TOC entry 184 (class 1255 OID 50224)
-- Dependencies: 515 6
-- Name: restart_sequences(); Type: FUNCTION; Schema: public; Owner: postgres
--

CREATE FUNCTION restart_sequences() RETURNS integer
    LANGUAGE plpgsql
    AS $$
  DECLARE sequencedefs RECORD; c integer ;
  BEGIN
    FOR sequencedefs IN Select
      constraint_column_usage.table_name as tablename,
      constraint_column_usage.table_name as tablename, 
      constraint_column_usage.column_name as columnname,
      replace(replace(columns.column_default,'''::regclass)',''),'nextval(''','') as sequencename
      from information_schema.constraint_column_usage, information_schema.columns
      where constraint_column_usage.table_schema ='public' AND 
      	columns.table_schema = 'public' AND 
      	columns.table_name=constraint_column_usage.table_name AND
      	constraint_column_usage.column_name = columns.column_name  AND 
    	columns.column_default is not null
   LOOP    
      EXECUTE 'select max('||sequencedefs.columnname||') from ' || sequencedefs.tablename INTO c;
      
      IF c is null 
      	THEN c = 0; 
      END IF;
      IF c is not null 
      	THEN c = c+ 1; 
      END IF;
      
      EXECUTE 'alter sequence ' || sequencedefs.sequencename ||' restart  with ' || c;
   END LOOP;

   RETURN 1; END;
$$;


ALTER FUNCTION public.restart_sequences() OWNER TO postgres;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- TOC entry 161 (class 1259 OID 50225)
-- Dependencies: 6
-- Name: archivo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE archivo (
    id_archivo integer NOT NULL,
    nombre_archivo character varying(50) NOT NULL,
    id_padre integer,
    id_tipo integer NOT NULL,
    id_grupo integer NOT NULL,
    datos_archivo bytea
);


ALTER TABLE public.archivo OWNER TO postgres;

--
-- TOC entry 162 (class 1259 OID 50231)
-- Dependencies: 161 6
-- Name: archivo_id_archivo_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE archivo_id_archivo_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.archivo_id_archivo_seq OWNER TO postgres;

--
-- TOC entry 2179 (class 0 OID 0)
-- Dependencies: 162
-- Name: archivo_id_archivo_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE archivo_id_archivo_seq OWNED BY archivo.id_archivo;


--
-- TOC entry 2180 (class 0 OID 0)
-- Dependencies: 162
-- Name: archivo_id_archivo_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('archivo_id_archivo_seq', 1, false);


--
-- TOC entry 163 (class 1259 OID 50233)
-- Dependencies: 6
-- Name: grupo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE grupo (
    id_grupo integer NOT NULL
);


ALTER TABLE public.grupo OWNER TO postgres;

--
-- TOC entry 164 (class 1259 OID 50236)
-- Dependencies: 163 6
-- Name: grupo_id_grupo_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE grupo_id_grupo_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.grupo_id_grupo_seq OWNER TO postgres;

--
-- TOC entry 2181 (class 0 OID 0)
-- Dependencies: 164
-- Name: grupo_id_grupo_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE grupo_id_grupo_seq OWNED BY grupo.id_grupo;


--
-- TOC entry 2182 (class 0 OID 0)
-- Dependencies: 164
-- Name: grupo_id_grupo_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('grupo_id_grupo_seq', 1, false);


--
-- TOC entry 165 (class 1259 OID 50238)
-- Dependencies: 6
-- Name: tipoarchivo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE tipoarchivo (
    id_tipo integer NOT NULL,
    tipo character varying(100) NOT NULL
);


ALTER TABLE public.tipoarchivo OWNER TO postgres;

--
-- TOC entry 166 (class 1259 OID 50241)
-- Dependencies: 6 165
-- Name: tipoarchivo_id_tipo_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE tipoarchivo_id_tipo_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.tipoarchivo_id_tipo_seq OWNER TO postgres;

--
-- TOC entry 2183 (class 0 OID 0)
-- Dependencies: 166
-- Name: tipoarchivo_id_tipo_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE tipoarchivo_id_tipo_seq OWNED BY tipoarchivo.id_tipo;


--
-- TOC entry 2184 (class 0 OID 0)
-- Dependencies: 166
-- Name: tipoarchivo_id_tipo_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('tipoarchivo_id_tipo_seq', 8, true);


--
-- TOC entry 167 (class 1259 OID 50243)
-- Dependencies: 6
-- Name: usuario; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE usuario (
    id_usuario integer NOT NULL,
    nombre_usuario character varying(100) NOT NULL,
    usuario_usuario character varying(16) NOT NULL,
    clave_usuario character varying(20) NOT NULL,
    mail_usuario character varying(50) NOT NULL
);


ALTER TABLE public.usuario OWNER TO postgres;

--
-- TOC entry 168 (class 1259 OID 50246)
-- Dependencies: 167 6
-- Name: usuario_id_usuario_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE usuario_id_usuario_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.usuario_id_usuario_seq OWNER TO postgres;

--
-- TOC entry 2185 (class 0 OID 0)
-- Dependencies: 168
-- Name: usuario_id_usuario_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE usuario_id_usuario_seq OWNED BY usuario.id_usuario;


--
-- TOC entry 2186 (class 0 OID 0)
-- Dependencies: 168
-- Name: usuario_id_usuario_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('usuario_id_usuario_seq', 1, false);


--
-- TOC entry 169 (class 1259 OID 50248)
-- Dependencies: 6
-- Name: usuariogrupo; Type: TABLE; Schema: public; Owner: postgres; Tablespace: 
--

CREATE TABLE usuariogrupo (
    id_usuariogrupo integer NOT NULL,
    id_grupo integer NOT NULL,
    id_usuario integer NOT NULL
);


ALTER TABLE public.usuariogrupo OWNER TO postgres;

--
-- TOC entry 170 (class 1259 OID 50251)
-- Dependencies: 169 6
-- Name: usuariogrupo_id_usuariogrupo_seq; Type: SEQUENCE; Schema: public; Owner: postgres
--

CREATE SEQUENCE usuariogrupo_id_usuariogrupo_seq
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    NO MAXVALUE
    CACHE 1;


ALTER TABLE public.usuariogrupo_id_usuariogrupo_seq OWNER TO postgres;

--
-- TOC entry 2187 (class 0 OID 0)
-- Dependencies: 170
-- Name: usuariogrupo_id_usuariogrupo_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres
--

ALTER SEQUENCE usuariogrupo_id_usuariogrupo_seq OWNED BY usuariogrupo.id_usuariogrupo;


--
-- TOC entry 2188 (class 0 OID 0)
-- Dependencies: 170
-- Name: usuariogrupo_id_usuariogrupo_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--

SELECT pg_catalog.setval('usuariogrupo_id_usuariogrupo_seq', 1, false);


--
-- TOC entry 2141 (class 2604 OID 50253)
-- Dependencies: 162 161
-- Name: id_archivo; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE archivo ALTER COLUMN id_archivo SET DEFAULT nextval('archivo_id_archivo_seq'::regclass);


--
-- TOC entry 2142 (class 2604 OID 50254)
-- Dependencies: 164 163
-- Name: id_grupo; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE grupo ALTER COLUMN id_grupo SET DEFAULT nextval('grupo_id_grupo_seq'::regclass);


--
-- TOC entry 2143 (class 2604 OID 50255)
-- Dependencies: 166 165
-- Name: id_tipo; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE tipoarchivo ALTER COLUMN id_tipo SET DEFAULT nextval('tipoarchivo_id_tipo_seq'::regclass);


--
-- TOC entry 2144 (class 2604 OID 50256)
-- Dependencies: 168 167
-- Name: id_usuario; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE usuario ALTER COLUMN id_usuario SET DEFAULT nextval('usuario_id_usuario_seq'::regclass);


--
-- TOC entry 2145 (class 2604 OID 50257)
-- Dependencies: 170 169
-- Name: id_usuariogrupo; Type: DEFAULT; Schema: public; Owner: postgres
--

ALTER TABLE usuariogrupo ALTER COLUMN id_usuariogrupo SET DEFAULT nextval('usuariogrupo_id_usuariogrupo_seq'::regclass);


--
-- TOC entry 2168 (class 0 OID 50225)
-- Dependencies: 161
-- Data for Name: archivo; Type: TABLE DATA; Schema: public; Owner: postgres
--



--
-- TOC entry 2169 (class 0 OID 50233)
-- Dependencies: 163
-- Data for Name: grupo; Type: TABLE DATA; Schema: public; Owner: postgres
--



--
-- TOC entry 2170 (class 0 OID 50238)
-- Dependencies: 165
-- Data for Name: tipoarchivo; Type: TABLE DATA; Schema: public; Owner: postgres
--

INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (1, 'Carpeta');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (2, 'Imagen');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (3, 'Documento');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (4, 'Audio');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (5, 'Video');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (6, 'Otro');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (7, 'Comprimido');
INSERT INTO tipoarchivo (id_tipo, tipo) VALUES (8, 'Presentacion');


--
-- TOC entry 2171 (class 0 OID 50243)
-- Dependencies: 167
-- Data for Name: usuario; Type: TABLE DATA; Schema: public; Owner: postgres
--



--
-- TOC entry 2172 (class 0 OID 50248)
-- Dependencies: 169
-- Data for Name: usuariogrupo; Type: TABLE DATA; Schema: public; Owner: postgres
--



--
-- TOC entry 2148 (class 2606 OID 50263)
-- Dependencies: 161 161
-- Name: id_archivo; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY archivo
    ADD CONSTRAINT id_archivo PRIMARY KEY (id_archivo);


--
-- TOC entry 2152 (class 2606 OID 50265)
-- Dependencies: 163 163
-- Name: id_grupo; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY grupo
    ADD CONSTRAINT id_grupo PRIMARY KEY (id_grupo);


--
-- TOC entry 2162 (class 2606 OID 50267)
-- Dependencies: 169 169
-- Name: id_usuariogrupo; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT id_usuariogrupo PRIMARY KEY (id_usuariogrupo);


--
-- TOC entry 2154 (class 2606 OID 50269)
-- Dependencies: 165 165
-- Name: idtipo; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY tipoarchivo
    ADD CONSTRAINT idtipo PRIMARY KEY (id_tipo);


--
-- TOC entry 2156 (class 2606 OID 50271)
-- Dependencies: 167 167
-- Name: mailuq; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuario
    ADD CONSTRAINT mailuq UNIQUE (mail_usuario);


--
-- TOC entry 2150 (class 2606 OID 50273)
-- Dependencies: 161 161 161
-- Name: nombrearchivo_idpadreuq; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY archivo
    ADD CONSTRAINT nombrearchivo_idpadreuq UNIQUE (nombre_archivo, id_padre);


--
-- TOC entry 2158 (class 2606 OID 50275)
-- Dependencies: 167 167
-- Name: usuariopk; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuario
    ADD CONSTRAINT usuariopk PRIMARY KEY (id_usuario);


--
-- TOC entry 2160 (class 2606 OID 50277)
-- Dependencies: 167 167
-- Name: usuariouq; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace: 
--

ALTER TABLE ONLY usuario
    ADD CONSTRAINT usuariouq UNIQUE (usuario_usuario);


--
-- TOC entry 2146 (class 1259 OID 50278)
-- Dependencies: 161
-- Name: fki_id_padre_archivofk; Type: INDEX; Schema: public; Owner: postgres; Tablespace: 
--

CREATE INDEX fki_id_padre_archivofk ON archivo USING btree (id_padre);


--
-- TOC entry 2166 (class 2606 OID 50279)
-- Dependencies: 169 2151 163
-- Name: grupofk; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT grupofk FOREIGN KEY (id_grupo) REFERENCES grupo(id_grupo) MATCH FULL;


--
-- TOC entry 2163 (class 2606 OID 50284)
-- Dependencies: 163 161 2151
-- Name: id_grupofk; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY archivo
    ADD CONSTRAINT id_grupofk FOREIGN KEY (id_grupo) REFERENCES grupo(id_grupo) MATCH FULL;


--
-- TOC entry 2164 (class 2606 OID 50289)
-- Dependencies: 2147 161 161
-- Name: id_padre_archivofk; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY archivo
    ADD CONSTRAINT id_padre_archivofk FOREIGN KEY (id_padre) REFERENCES archivo(id_archivo);


--
-- TOC entry 2165 (class 2606 OID 50294)
-- Dependencies: 161 2153 165
-- Name: id_tipoarchivofk; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY archivo
    ADD CONSTRAINT id_tipoarchivofk FOREIGN KEY (id_tipo) REFERENCES tipoarchivo(id_tipo) MATCH FULL;


--
-- TOC entry 2167 (class 2606 OID 50299)
-- Dependencies: 2157 167 169
-- Name: usuariofk; Type: FK CONSTRAINT; Schema: public; Owner: postgres
--

ALTER TABLE ONLY usuariogrupo
    ADD CONSTRAINT usuariofk FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario) MATCH FULL;


--
-- TOC entry 2177 (class 0 OID 0)
-- Dependencies: 6
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--

REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;


-- Completed on 2012-07-08 18:17:31 ART

--
-- PostgreSQL database dump complete
--

